﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using DAL.Entity;


namespace DAL.Persistencia
{
    public class HorariosSemanaDAL
    {

        private NewTierraEntities Con;

        public HorariosSemanaDAL()
        {
            Con = new NewTierraEntities();
        }

        public void SalvarSemana(Usuarios_DiasSemana d)
        {
            try
            {
                Con.AddToUsuarios_DiasSemana(d);
                Con.SaveChanges();
            }
            catch 
            {                
                throw;
            }
        }

        public int SalvarHorarios(Usuarios_Horarios h)
        {
            try
            {
                Con.AddToUsuarios_Horarios(h);
                Con.SaveChanges();
                return h.US_id;
            }
            catch 
            {                
                throw;
            }
        }

        public void AtualizaSemana(Usuarios_DiasSemana novo)
        {
            try
            {
                Usuarios_DiasSemana antigo = ObterSemanaPorId(novo.DiasSemana_id);

                antigo.DiasSemana_seg = novo.DiasSemana_seg;
                antigo.DiasSemana_ter = novo.DiasSemana_ter;
                antigo.DiasSemana_qua = novo.DiasSemana_qua;
                antigo.DiasSemana_qui = novo.DiasSemana_qui;
                antigo.DiasSemana_sex = novo.DiasSemana_sex;
                antigo.DiasSemana_sab = novo.DiasSemana_sab;
                antigo.DiasSemana_dom = novo.DiasSemana_dom;

                Con.SaveChanges();

            }
            catch 
            {                
                throw;
            }
        }

        public void AtualizaHorarios(Usuarios_Horarios novo)
        {
            Usuarios_Horarios antigo = ObterPorIdUsuario(novo.US_id);

            antigo.Horarios_diaInicio = novo.Horarios_diaInicio;
            antigo.Horarios_diaFim = novo.Horarios_diaFim;
            antigo.Horarios_feriasInicio = novo.Horarios_feriasInicio;
            antigo.Horarios_feriasFim = novo.Horarios_feriasFim;

            Con.SaveChanges();
        }

        public Usuarios_Horarios ObterPorIdUsuario(int IdUsuario)
        {
            try
            {
                return Con.Usuarios_Horarios.Where(u => u.US_id == IdUsuario).SingleOrDefault();
            }
            catch 
            {                
                throw;
            }
        }

        public Usuarios_DiasSemana ObterSemanaPorId(int IdSemana)
        {
            try
            {
                return Con.Usuarios_DiasSemana.Where(s => s.DiasSemana_id == IdSemana).SingleOrDefault();
            }
            catch 
            {                
                throw;
            }
        }

        public void AtualizaIdSemana(int IdUser, int IdSemana)
        {
            Usuarios_Horarios uh = ObterPorIdUsuario(IdUser);

            uh.DiasSemana_id = IdSemana;

            Con.SaveChanges();
        }


    }
}
